🦊Stable Diffusion 1.5のLoRAやControlNetはSDXLでは使えない
🏠️ | 🦊雑に学ぶComfyUI
基盤モデルという考え方
生成AI以前は各々やりたい事のために0から専用のAIを作っていました
しかし2018年のBERT、そしておなじみ2020年GPT-3によって、データ量、モデルサイズ、計算能力を増やせば増やすほど性能が向上する上、一つのことだけではなく、いろんなタスクを行える"汎用能力"を持つことが明らかになりました
それ以降基盤モデルという考えが現れ台頭します
ざっくり言えば、専用のAIを個別開発するのではなく、大体なんでもできるデカいモデルをドンと作って、それぞれの使い道に合わせてカスタムしていこう!ということですね
画像生成AIにおける基盤モデルは皆様ご存知、Stable Diffusion 1.5でありSDXL、Flux etc. となります
ファインチューニングと専用カスタムパーツ
Stable DIffusionという基盤モデルが現れたので、みんなそれぞれ使いたい用途に合わせてファインチューニング(調整)をしていきました
アニメ絵が上手く描けるようにしたり、映画のような画像が作れるようにしたり、といった具合です
ただ、これをご家庭のPCでやるには計算量が多かったのと、例えばあるキャラを追加で生成できるようにしたい!というだけでフルファインチューニングするのは無駄が多すぎます
これを解決する手段として、モデルの一部分だけをファインチューニングするLoRAという手法がでてきました
また、画像生成AIを"コントロール"する方法として様々なカスタムパーツが開発されました
棒人間を渡したらそれに合わせて肉付けしてくれたり(ControlNet)
写真を渡したらそれを参考に描いてくれたり(IP-Adapter)
基盤モデルが変わったら、過去のカスタムパーツは使えない
時が経つとベースとなっている基盤モデル自体に新しいものが登場します
SDXLやFluxなどですね
これらStable Diffusion 1.5の改良ではなく、作り(アーキテクチャ)からして全くの別物です
日本の家電を海外に持っていってもプラグの形が違って使えないのと同じように、Stable Diffusion 1.5のために作られたLoRAやControlNetモデルはSDXLやそれ以降の基盤モデルで使うことはできません
初心者がよく目にするエラー mat1 and mat2 shapes cannot be multiplied は、まさにその家電はうちの国じゃ対応してないよ、という警告の一つです
変換器?はあるにはある
家電ならば変圧器と変換プラグを持っていけば、海外でも使えるようになります
同じ様な考えで、Stable Diffusion 1.5用のものをSDXLでも使えるような変換プラグを作ろう!という研究はあります
X-Adapter
ただしほぼ全く使われていません
うまく変換できておらず、本来の性能を発揮できていないというのも大きな原因の一つですが、基盤モデルの性能が革新的に上がっている、というのも理由の一つです
もはや過去の遺産に頼らなくても良いかもしれない
LoRAやControlNetは、その機能を追加するためにファインチューニングをしなければいけません
0から作ることに比べれば大したことは無いですが、それでも、数時間・長ければ数日間もPCを動かし続けなければなりません
対して、最新の基盤モデルであるFluxやWan2.1は、最初からIP-AdapterやControlNetのようなことができる潜在能力を持っています
特定のキャラを描かせるにしても、LoRAを作らずとも一枚画像を渡して「この子が泳いでる絵を描いて」といえば描いてくれちゃうんですね
このような、ファインチューニング無しで制御出来ることをゼロショット〇〇といいます
もちろん、Stable Diffusion 1.5時代の尖ったモデルやLoRAは今でも魅力的ですし、それでしか描けないものもありますが、今後さらに進化した基盤モデルが出てきた時、無理して過去の遺産に頼るべきかというのは考えどころです